using System;
using System.Runtime.CompilerServices;

namespace Newtonsoft.Json
{
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = false)]
	public abstract class JsonContainerAttribute : Attribute
	{
		internal bool? nullable_0;

		internal bool? nullable_1;

		internal ReferenceLoopHandling? nullable_2;

		internal TypeNameHandling? nullable_3;

		[CompilerGenerated]
		private string string_0;

		[CompilerGenerated]
		private string string_1;

		[CompilerGenerated]
		private string string_2;

		[CompilerGenerated]
		private Type type_0;

		public string Id
		{
			[CompilerGenerated]
			get
			{
				return string_0;
			}
			[CompilerGenerated]
			set
			{
				string_0 = value;
			}
		}

		public string Title
		{
			[CompilerGenerated]
			get
			{
				return string_1;
			}
			[CompilerGenerated]
			set
			{
				string_1 = value;
			}
		}

		public string Description
		{
			[CompilerGenerated]
			get
			{
				return string_2;
			}
			[CompilerGenerated]
			set
			{
				string_2 = value;
			}
		}

		public Type ItemConverterType
		{
			[CompilerGenerated]
			get
			{
				return type_0;
			}
			[CompilerGenerated]
			set
			{
				type_0 = value;
			}
		}

		public bool IsReference
		{
			get
			{
				return nullable_0 ?? false;
			}
			set
			{
				nullable_0 = value;
			}
		}

		public bool ItemIsReference
		{
			get
			{
				return nullable_1 ?? false;
			}
			set
			{
				nullable_1 = value;
			}
		}

		public ReferenceLoopHandling ItemReferenceLoopHandling
		{
			get
			{
				return nullable_2 ?? ReferenceLoopHandling.Error;
			}
			set
			{
				nullable_2 = value;
			}
		}

		public TypeNameHandling ItemTypeNameHandling
		{
			get
			{
				return nullable_3 ?? TypeNameHandling.None;
			}
			set
			{
				nullable_3 = value;
			}
		}

		protected JsonContainerAttribute()
		{
		}

		protected JsonContainerAttribute(string id)
		{
			Id = id;
		}
	}
}
